/**
 *
 * Escola
 * 19/05/2012 - 15:40:19
 *
 */
package escola.logic;

import java.util.Collection;
import java.util.List;
import java.util.Set;

/**
 * @author Jonathan
 *
 */
public interface Logic<T> {
	
	public abstract T save(T entity);
	
	public abstract Collection<T> saveAll(Collection<T> entities);
	
	public T getById(Integer id);
	
	public Set<T> getByIds(int[] ids);

	public Set<T> getByIds(Integer[] ids);
	
	public Set<T> getByIds(Collection<Integer> ids);
	
	public List<T> getAll();
	
	public T getByParam(String field, Object param);
	
	public List<T> getByParamLike(String field, String param);
	
	public void deleteAll(Collection<T> entities);
	
	public abstract void delete(T entity);
	
	public abstract void delete(Integer id);

}
